import Vue from './runtime/index'
import {
  h
} from 'snabbdom'

// 编译器 处理jsx 组合参数，返回渲染结果
export function compiler(tag, attrs) {
  // 属性
  let props = attrs || {}
  // 子元素
  let children = []
  let options = {
    on: {}
  }
  // 取出attrs中的事件，缓存到options.on属性上
  for (const k in props) {
    // onClick
    if (k[0] === 'o' && k[1] === 'n') {
      // 转小写并保存在options上
      options.on[k.slice(2).toLocaleLowerCase()] = props[k]
    }
  }
  // 获取tag attrs后面的参数 children
  for (let i = 2; i < arguments.length; i++) {
    let vnode = arguments[i]
    // 初始化children
    children.push(vnode)
  }
  // 返回渲染后的vnode
  return h(tag, options, children)
}

export default Vue